package org.amphiprion.rfreplayanalyser.ui.lapanalyzer;

import java.awt.Point;
import java.util.List;

import org.amphiprion.rfreplayanalyser.parser.Replay;
import org.amphiprion.rfreplayanalyser.ui.lapanalyzer.LapStartEndAnalyerPanel.AnalyserMode;

public interface LapProvider {
	Replay getReplay();

	String getDriverName(long driverId);

	List<LapItem> getLapItems();

	void lapItemUpdated(LapItem lapItem);

	void lapItemRemoved(LapItem lapItem);

	void analyzerRangeUpdated(float[] startAnalyzerTime, float[] endAnalyzerTime);

	void updateReplayTimeForCars(float[] replayTimeAtCarPosition);

	void lapItemSelected(LapItem lapItem, boolean centerView);

	boolean isLapItemSelected(LapItem lapItem);

	void updateScreenPositionSelectedCar(Point point);

	AnalyserMode getAnalyzerMode();

	void updateScrollbarPositionToCenterAt(int x, int y);
}
